package com.railway.service;

import java.util.List;
import java.util.Map;

import com.railway.bean.Admin;
import com.railway.bean.Contact;
import com.railway.bean.LoseCreditUser;
import com.railway.bean.Page;
import com.railway.bean.Station;
import com.railway.bean.Train;

public interface AdminService {

	/**查询乘车人
	 * @param user_id
	 * @return
	 */
	List<Contact> selectContact(int user_id);
	
	/**查询用户
	 * @return
	 */
	Page selectUser(int pageNum, int pageSize);
	
	/**修改用户
	 * @param map
	 * @return
	 */
	int updateUser(Map<String,String[]> map);
	
	/**用于删除用户
	 * @param user_id
	 * @return
	 */
	int deleteUser(int user_id);
	
	/**删除乘车人
	 * @param contact_id
	 * @return
	 */
	int deleteContact(int user_id,int contact_id);
	
	/**用于恢复已乘车人
	 * @param user_id
	 * @param contact_id
	 * @return
	 */
	int recoverContact(int user_id ,int contact_id);
	
	/**删除失信人
	 * @param loseCredit_id
	 * @return
	 */
	int deleteLoseCreditDao(int loseCredit_id);
	
	/**显示失信人
	 * @param pageNum
	 * @param pageSize
	 * @return
	 */
	List<LoseCreditUser> showLoseCredit(int pageNum,int pageSize);
	
	/**添加失信人
	 * @param user_name
	 * @param user_id_num
	 * @return
	 */
	int insertLoseCreditUser(String user_name,String user_id_num);
	
	/**显示站
	 * @param pageNum
	 * @param pageSize
	 * @return
	 */
	Page<Station> showStation(int pageNum,int pageSize);
	
	/**添加站
	 * @param station
	 * @return
	 */
	int insertStation(Station station);
	
	/**删除站
	 * @param station_id
	 * @return
	 */
	int deleteStation(int station_id);
	
	/**修改站描述
	 * @param station_id
	 * @param detailed
	 * @return
	 */
	int updateStation(int station_id,String detailed);
	
	/**显示站
	 * @param pageNum
	 * @param pageSize
	 * @return
	 */
	Page<Train> showTrain(int pageNum,int pageSize);
	
	/**删除列车
	 * @param train_id
	 * @return
	 */
	int deleteTrain(int train_id);
	
	/**添加列车
	 * @param map
	 * @return
	 */
	int insertTrain(Map<String,String[]> map);
	
	/**修改管理员密码
	 * @param admin_id
	 * @return
	 */
	int updateAdminPassword(int admin_id,String admin_password);
	
	/**管理员登陆
	 * @param admin_name
	 * @param password
	 * @return
	 */
	Map login(String admin_name,String password);
	
	/**退票(单独退票)
	 * @param user_id
	 * @param ticket_id
	 * @return
	 */
	int returnTicketDao(int ticket_id);
	
	int returnTicketSerive(int trian_id);
	
	/**
	 * 永久删除
	 * @param loseCreditId
	 * @return
	 */
	int delAbsoluteLcu(int loseCreditId);
	
	/**
	 * 找到所有管理员
	 * 并实现分页
	 * @param pageNum
	 * @param pageSize
	 * @return
	 */
	List<Admin> selectAllAdmin(int pageNum,int pageSize);
	
	/**
	 * 管理员总数
	 * @return
	 */
	int selectCountAdmin();
	
	/**
	 * 通过指定ID删除管理员
	 * @param adminId
	 * @return
	 */
	int deleteAdmin(int adminId);
	
	/**编辑管理员信息
	 * @param admin_id
	 * @param new_admin_password
	 * @return
	 */
	int updateAdminAll(int adminId,String adminName,String adminPassword);
	/**
	 * 添加管理员
	 * @param admin
	 * @return
	 */
	int insertAdmin(Admin admin);
	
	/**
	 * 通过用户名查询
	 * @param AdminName
	 * @return
	 */
	List<Admin> selectByadminName(String AdminName,int pageNum,int pageSize);
	
	/**
	 * 查询指定管理员总数
	 * @return
	 */
	int selectCountAdminName(String AdminName);
}
